/**
 */
package de.thwildau.tm.moses.abnf.abnf;

import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;

/**
 * <!-- begin-user-doc -->
 * The <b>Package</b> for the model.
 * It contains accessors for the meta objects to represent
 * <ul>
 *   <li>each class,</li>
 *   <li>each feature of each class,</li>
 *   <li>each enum,</li>
 *   <li>and each data type</li>
 * </ul>
 * <!-- end-user-doc -->
 * @see de.thwildau.tm.moses.abnf.abnf.AbnfFactory
 * @model kind="package"
 * @generated
 */
public interface AbnfPackage extends EPackage
{
  /**
   * The package name.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  String eNAME = "abnf";

  /**
   * The package namespace URI.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  String eNS_URI = "http://www.thwildau.de/tm/moses/abnf/Abnf";

  /**
   * The package namespace name.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  String eNS_PREFIX = "abnf";

  /**
   * The singleton instance of the package.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  AbnfPackage eINSTANCE = de.thwildau.tm.moses.abnf.abnf.impl.AbnfPackageImpl.init();

  /**
   * The meta object id for the '{@link de.thwildau.tm.moses.abnf.abnf.impl.RuleSetImpl <em>Rule Set</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.thwildau.tm.moses.abnf.abnf.impl.RuleSetImpl
   * @see de.thwildau.tm.moses.abnf.abnf.impl.AbnfPackageImpl#getRuleSet()
   * @generated
   */
  int RULE_SET = 0;

  /**
   * The feature id for the '<em><b>Rules</b></em>' containment reference list.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int RULE_SET__RULES = 0;

  /**
   * The number of structural features of the '<em>Rule Set</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int RULE_SET_FEATURE_COUNT = 1;

  /**
   * The meta object id for the '{@link de.thwildau.tm.moses.abnf.abnf.impl.RuleImpl <em>Rule</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.thwildau.tm.moses.abnf.abnf.impl.RuleImpl
   * @see de.thwildau.tm.moses.abnf.abnf.impl.AbnfPackageImpl#getRule()
   * @generated
   */
  int RULE = 1;

  /**
   * The feature id for the '<em><b>Name</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int RULE__NAME = 0;

  /**
   * The feature id for the '<em><b>Alternation</b></em>' containment reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int RULE__ALTERNATION = 1;

  /**
   * The number of structural features of the '<em>Rule</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int RULE_FEATURE_COUNT = 2;

  /**
   * The meta object id for the '{@link de.thwildau.tm.moses.abnf.abnf.impl.AlternationImpl <em>Alternation</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.thwildau.tm.moses.abnf.abnf.impl.AlternationImpl
   * @see de.thwildau.tm.moses.abnf.abnf.impl.AbnfPackageImpl#getAlternation()
   * @generated
   */
  int ALTERNATION = 2;

  /**
   * The feature id for the '<em><b>Concatenations</b></em>' containment reference list.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int ALTERNATION__CONCATENATIONS = 0;

  /**
   * The number of structural features of the '<em>Alternation</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int ALTERNATION_FEATURE_COUNT = 1;

  /**
   * The meta object id for the '{@link de.thwildau.tm.moses.abnf.abnf.impl.ConcatenationImpl <em>Concatenation</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.thwildau.tm.moses.abnf.abnf.impl.ConcatenationImpl
   * @see de.thwildau.tm.moses.abnf.abnf.impl.AbnfPackageImpl#getConcatenation()
   * @generated
   */
  int CONCATENATION = 3;

  /**
   * The feature id for the '<em><b>Repetitions</b></em>' containment reference list.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int CONCATENATION__REPETITIONS = 0;

  /**
   * The number of structural features of the '<em>Concatenation</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int CONCATENATION_FEATURE_COUNT = 1;

  /**
   * The meta object id for the '{@link de.thwildau.tm.moses.abnf.abnf.impl.RepetitionImpl <em>Repetition</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.thwildau.tm.moses.abnf.abnf.impl.RepetitionImpl
   * @see de.thwildau.tm.moses.abnf.abnf.impl.AbnfPackageImpl#getRepetition()
   * @generated
   */
  int REPETITION = 4;

  /**
   * The feature id for the '<em><b>Repeat</b></em>' containment reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int REPETITION__REPEAT = 0;

  /**
   * The feature id for the '<em><b>Element</b></em>' containment reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int REPETITION__ELEMENT = 1;

  /**
   * The number of structural features of the '<em>Repetition</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int REPETITION_FEATURE_COUNT = 2;

  /**
   * The meta object id for the '{@link de.thwildau.tm.moses.abnf.abnf.impl.ElementImpl <em>Element</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.thwildau.tm.moses.abnf.abnf.impl.ElementImpl
   * @see de.thwildau.tm.moses.abnf.abnf.impl.AbnfPackageImpl#getElement()
   * @generated
   */
  int ELEMENT = 5;

  /**
   * The number of structural features of the '<em>Element</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int ELEMENT_FEATURE_COUNT = 0;

  /**
   * The meta object id for the '{@link de.thwildau.tm.moses.abnf.abnf.impl.RuleRefImpl <em>Rule Ref</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.thwildau.tm.moses.abnf.abnf.impl.RuleRefImpl
   * @see de.thwildau.tm.moses.abnf.abnf.impl.AbnfPackageImpl#getRuleRef()
   * @generated
   */
  int RULE_REF = 6;

  /**
   * The feature id for the '<em><b>Rule</b></em>' reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int RULE_REF__RULE = ELEMENT_FEATURE_COUNT + 0;

  /**
   * The number of structural features of the '<em>Rule Ref</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int RULE_REF_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 1;

  /**
   * The meta object id for the '{@link de.thwildau.tm.moses.abnf.abnf.impl.GroupImpl <em>Group</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.thwildau.tm.moses.abnf.abnf.impl.GroupImpl
   * @see de.thwildau.tm.moses.abnf.abnf.impl.AbnfPackageImpl#getGroup()
   * @generated
   */
  int GROUP = 7;

  /**
   * The feature id for the '<em><b>Alternation</b></em>' containment reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int GROUP__ALTERNATION = ELEMENT_FEATURE_COUNT + 0;

  /**
   * The number of structural features of the '<em>Group</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int GROUP_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 1;

  /**
   * The meta object id for the '{@link de.thwildau.tm.moses.abnf.abnf.impl.OptionImpl <em>Option</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.thwildau.tm.moses.abnf.abnf.impl.OptionImpl
   * @see de.thwildau.tm.moses.abnf.abnf.impl.AbnfPackageImpl#getOption()
   * @generated
   */
  int OPTION = 8;

  /**
   * The feature id for the '<em><b>Alternation</b></em>' containment reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int OPTION__ALTERNATION = ELEMENT_FEATURE_COUNT + 0;

  /**
   * The number of structural features of the '<em>Option</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int OPTION_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 1;

  /**
   * The meta object id for the '{@link de.thwildau.tm.moses.abnf.abnf.impl.CharValImpl <em>Char Val</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.thwildau.tm.moses.abnf.abnf.impl.CharValImpl
   * @see de.thwildau.tm.moses.abnf.abnf.impl.AbnfPackageImpl#getCharVal()
   * @generated
   */
  int CHAR_VAL = 9;

  /**
   * The feature id for the '<em><b>Value</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int CHAR_VAL__VALUE = ELEMENT_FEATURE_COUNT + 0;

  /**
   * The number of structural features of the '<em>Char Val</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int CHAR_VAL_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 1;

  /**
   * The meta object id for the '{@link de.thwildau.tm.moses.abnf.abnf.impl.NumValImpl <em>Num Val</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.thwildau.tm.moses.abnf.abnf.impl.NumValImpl
   * @see de.thwildau.tm.moses.abnf.abnf.impl.AbnfPackageImpl#getNumVal()
   * @generated
   */
  int NUM_VAL = 10;

  /**
   * The feature id for the '<em><b>Value</b></em>' attribute list.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int NUM_VAL__VALUE = ELEMENT_FEATURE_COUNT + 0;

  /**
   * The feature id for the '<em><b>Max Value</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int NUM_VAL__MAX_VALUE = ELEMENT_FEATURE_COUNT + 1;

  /**
   * The number of structural features of the '<em>Num Val</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int NUM_VAL_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 2;

  /**
   * The meta object id for the '{@link de.thwildau.tm.moses.abnf.abnf.impl.BinValImpl <em>Bin Val</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.thwildau.tm.moses.abnf.abnf.impl.BinValImpl
   * @see de.thwildau.tm.moses.abnf.abnf.impl.AbnfPackageImpl#getBinVal()
   * @generated
   */
  int BIN_VAL = 11;

  /**
   * The feature id for the '<em><b>Value</b></em>' attribute list.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int BIN_VAL__VALUE = NUM_VAL__VALUE;

  /**
   * The feature id for the '<em><b>Max Value</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int BIN_VAL__MAX_VALUE = NUM_VAL__MAX_VALUE;

  /**
   * The number of structural features of the '<em>Bin Val</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int BIN_VAL_FEATURE_COUNT = NUM_VAL_FEATURE_COUNT + 0;

  /**
   * The meta object id for the '{@link de.thwildau.tm.moses.abnf.abnf.impl.DecValImpl <em>Dec Val</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.thwildau.tm.moses.abnf.abnf.impl.DecValImpl
   * @see de.thwildau.tm.moses.abnf.abnf.impl.AbnfPackageImpl#getDecVal()
   * @generated
   */
  int DEC_VAL = 12;

  /**
   * The feature id for the '<em><b>Value</b></em>' attribute list.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int DEC_VAL__VALUE = NUM_VAL__VALUE;

  /**
   * The feature id for the '<em><b>Max Value</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int DEC_VAL__MAX_VALUE = NUM_VAL__MAX_VALUE;

  /**
   * The number of structural features of the '<em>Dec Val</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int DEC_VAL_FEATURE_COUNT = NUM_VAL_FEATURE_COUNT + 0;

  /**
   * The meta object id for the '{@link de.thwildau.tm.moses.abnf.abnf.impl.HexValImpl <em>Hex Val</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.thwildau.tm.moses.abnf.abnf.impl.HexValImpl
   * @see de.thwildau.tm.moses.abnf.abnf.impl.AbnfPackageImpl#getHexVal()
   * @generated
   */
  int HEX_VAL = 13;

  /**
   * The feature id for the '<em><b>Value</b></em>' attribute list.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int HEX_VAL__VALUE = NUM_VAL__VALUE;

  /**
   * The feature id for the '<em><b>Max Value</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int HEX_VAL__MAX_VALUE = NUM_VAL__MAX_VALUE;

  /**
   * The number of structural features of the '<em>Hex Val</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int HEX_VAL_FEATURE_COUNT = NUM_VAL_FEATURE_COUNT + 0;

  /**
   * The meta object id for the '{@link de.thwildau.tm.moses.abnf.abnf.impl.ProseValImpl <em>Prose Val</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.thwildau.tm.moses.abnf.abnf.impl.ProseValImpl
   * @see de.thwildau.tm.moses.abnf.abnf.impl.AbnfPackageImpl#getProseVal()
   * @generated
   */
  int PROSE_VAL = 14;

  /**
   * The feature id for the '<em><b>Value</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int PROSE_VAL__VALUE = ELEMENT_FEATURE_COUNT + 0;

  /**
   * The number of structural features of the '<em>Prose Val</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int PROSE_VAL_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 1;

  /**
   * The meta object id for the '{@link de.thwildau.tm.moses.abnf.abnf.impl.RepeatImpl <em>Repeat</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.thwildau.tm.moses.abnf.abnf.impl.RepeatImpl
   * @see de.thwildau.tm.moses.abnf.abnf.impl.AbnfPackageImpl#getRepeat()
   * @generated
   */
  int REPEAT = 15;

  /**
   * The feature id for the '<em><b>Lower Bound</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int REPEAT__LOWER_BOUND = 0;

  /**
   * The feature id for the '<em><b>Upper Bound</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int REPEAT__UPPER_BOUND = 1;

  /**
   * The number of structural features of the '<em>Repeat</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int REPEAT_FEATURE_COUNT = 2;


  /**
   * Returns the meta object for class '{@link de.thwildau.tm.moses.abnf.abnf.RuleSet <em>Rule Set</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Rule Set</em>'.
   * @see de.thwildau.tm.moses.abnf.abnf.RuleSet
   * @generated
   */
  EClass getRuleSet();

  /**
   * Returns the meta object for the containment reference list '{@link de.thwildau.tm.moses.abnf.abnf.RuleSet#getRules <em>Rules</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference list '<em>Rules</em>'.
   * @see de.thwildau.tm.moses.abnf.abnf.RuleSet#getRules()
   * @see #getRuleSet()
   * @generated
   */
  EReference getRuleSet_Rules();

  /**
   * Returns the meta object for class '{@link de.thwildau.tm.moses.abnf.abnf.Rule <em>Rule</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Rule</em>'.
   * @see de.thwildau.tm.moses.abnf.abnf.Rule
   * @generated
   */
  EClass getRule();

  /**
   * Returns the meta object for the attribute '{@link de.thwildau.tm.moses.abnf.abnf.Rule#getName <em>Name</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Name</em>'.
   * @see de.thwildau.tm.moses.abnf.abnf.Rule#getName()
   * @see #getRule()
   * @generated
   */
  EAttribute getRule_Name();

  /**
   * Returns the meta object for the containment reference '{@link de.thwildau.tm.moses.abnf.abnf.Rule#getAlternation <em>Alternation</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference '<em>Alternation</em>'.
   * @see de.thwildau.tm.moses.abnf.abnf.Rule#getAlternation()
   * @see #getRule()
   * @generated
   */
  EReference getRule_Alternation();

  /**
   * Returns the meta object for class '{@link de.thwildau.tm.moses.abnf.abnf.Alternation <em>Alternation</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Alternation</em>'.
   * @see de.thwildau.tm.moses.abnf.abnf.Alternation
   * @generated
   */
  EClass getAlternation();

  /**
   * Returns the meta object for the containment reference list '{@link de.thwildau.tm.moses.abnf.abnf.Alternation#getConcatenations <em>Concatenations</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference list '<em>Concatenations</em>'.
   * @see de.thwildau.tm.moses.abnf.abnf.Alternation#getConcatenations()
   * @see #getAlternation()
   * @generated
   */
  EReference getAlternation_Concatenations();

  /**
   * Returns the meta object for class '{@link de.thwildau.tm.moses.abnf.abnf.Concatenation <em>Concatenation</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Concatenation</em>'.
   * @see de.thwildau.tm.moses.abnf.abnf.Concatenation
   * @generated
   */
  EClass getConcatenation();

  /**
   * Returns the meta object for the containment reference list '{@link de.thwildau.tm.moses.abnf.abnf.Concatenation#getRepetitions <em>Repetitions</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference list '<em>Repetitions</em>'.
   * @see de.thwildau.tm.moses.abnf.abnf.Concatenation#getRepetitions()
   * @see #getConcatenation()
   * @generated
   */
  EReference getConcatenation_Repetitions();

  /**
   * Returns the meta object for class '{@link de.thwildau.tm.moses.abnf.abnf.Repetition <em>Repetition</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Repetition</em>'.
   * @see de.thwildau.tm.moses.abnf.abnf.Repetition
   * @generated
   */
  EClass getRepetition();

  /**
   * Returns the meta object for the containment reference '{@link de.thwildau.tm.moses.abnf.abnf.Repetition#getRepeat <em>Repeat</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference '<em>Repeat</em>'.
   * @see de.thwildau.tm.moses.abnf.abnf.Repetition#getRepeat()
   * @see #getRepetition()
   * @generated
   */
  EReference getRepetition_Repeat();

  /**
   * Returns the meta object for the containment reference '{@link de.thwildau.tm.moses.abnf.abnf.Repetition#getElement <em>Element</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference '<em>Element</em>'.
   * @see de.thwildau.tm.moses.abnf.abnf.Repetition#getElement()
   * @see #getRepetition()
   * @generated
   */
  EReference getRepetition_Element();

  /**
   * Returns the meta object for class '{@link de.thwildau.tm.moses.abnf.abnf.Element <em>Element</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Element</em>'.
   * @see de.thwildau.tm.moses.abnf.abnf.Element
   * @generated
   */
  EClass getElement();

  /**
   * Returns the meta object for class '{@link de.thwildau.tm.moses.abnf.abnf.RuleRef <em>Rule Ref</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Rule Ref</em>'.
   * @see de.thwildau.tm.moses.abnf.abnf.RuleRef
   * @generated
   */
  EClass getRuleRef();

  /**
   * Returns the meta object for the reference '{@link de.thwildau.tm.moses.abnf.abnf.RuleRef#getRule <em>Rule</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the reference '<em>Rule</em>'.
   * @see de.thwildau.tm.moses.abnf.abnf.RuleRef#getRule()
   * @see #getRuleRef()
   * @generated
   */
  EReference getRuleRef_Rule();

  /**
   * Returns the meta object for class '{@link de.thwildau.tm.moses.abnf.abnf.Group <em>Group</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Group</em>'.
   * @see de.thwildau.tm.moses.abnf.abnf.Group
   * @generated
   */
  EClass getGroup();

  /**
   * Returns the meta object for the containment reference '{@link de.thwildau.tm.moses.abnf.abnf.Group#getAlternation <em>Alternation</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference '<em>Alternation</em>'.
   * @see de.thwildau.tm.moses.abnf.abnf.Group#getAlternation()
   * @see #getGroup()
   * @generated
   */
  EReference getGroup_Alternation();

  /**
   * Returns the meta object for class '{@link de.thwildau.tm.moses.abnf.abnf.Option <em>Option</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Option</em>'.
   * @see de.thwildau.tm.moses.abnf.abnf.Option
   * @generated
   */
  EClass getOption();

  /**
   * Returns the meta object for the containment reference '{@link de.thwildau.tm.moses.abnf.abnf.Option#getAlternation <em>Alternation</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference '<em>Alternation</em>'.
   * @see de.thwildau.tm.moses.abnf.abnf.Option#getAlternation()
   * @see #getOption()
   * @generated
   */
  EReference getOption_Alternation();

  /**
   * Returns the meta object for class '{@link de.thwildau.tm.moses.abnf.abnf.CharVal <em>Char Val</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Char Val</em>'.
   * @see de.thwildau.tm.moses.abnf.abnf.CharVal
   * @generated
   */
  EClass getCharVal();

  /**
   * Returns the meta object for the attribute '{@link de.thwildau.tm.moses.abnf.abnf.CharVal#getValue <em>Value</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Value</em>'.
   * @see de.thwildau.tm.moses.abnf.abnf.CharVal#getValue()
   * @see #getCharVal()
   * @generated
   */
  EAttribute getCharVal_Value();

  /**
   * Returns the meta object for class '{@link de.thwildau.tm.moses.abnf.abnf.NumVal <em>Num Val</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Num Val</em>'.
   * @see de.thwildau.tm.moses.abnf.abnf.NumVal
   * @generated
   */
  EClass getNumVal();

  /**
   * Returns the meta object for the attribute list '{@link de.thwildau.tm.moses.abnf.abnf.NumVal#getValue <em>Value</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute list '<em>Value</em>'.
   * @see de.thwildau.tm.moses.abnf.abnf.NumVal#getValue()
   * @see #getNumVal()
   * @generated
   */
  EAttribute getNumVal_Value();

  /**
   * Returns the meta object for the attribute '{@link de.thwildau.tm.moses.abnf.abnf.NumVal#getMaxValue <em>Max Value</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Max Value</em>'.
   * @see de.thwildau.tm.moses.abnf.abnf.NumVal#getMaxValue()
   * @see #getNumVal()
   * @generated
   */
  EAttribute getNumVal_MaxValue();

  /**
   * Returns the meta object for class '{@link de.thwildau.tm.moses.abnf.abnf.BinVal <em>Bin Val</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Bin Val</em>'.
   * @see de.thwildau.tm.moses.abnf.abnf.BinVal
   * @generated
   */
  EClass getBinVal();

  /**
   * Returns the meta object for class '{@link de.thwildau.tm.moses.abnf.abnf.DecVal <em>Dec Val</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Dec Val</em>'.
   * @see de.thwildau.tm.moses.abnf.abnf.DecVal
   * @generated
   */
  EClass getDecVal();

  /**
   * Returns the meta object for class '{@link de.thwildau.tm.moses.abnf.abnf.HexVal <em>Hex Val</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Hex Val</em>'.
   * @see de.thwildau.tm.moses.abnf.abnf.HexVal
   * @generated
   */
  EClass getHexVal();

  /**
   * Returns the meta object for class '{@link de.thwildau.tm.moses.abnf.abnf.ProseVal <em>Prose Val</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Prose Val</em>'.
   * @see de.thwildau.tm.moses.abnf.abnf.ProseVal
   * @generated
   */
  EClass getProseVal();

  /**
   * Returns the meta object for the attribute '{@link de.thwildau.tm.moses.abnf.abnf.ProseVal#getValue <em>Value</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Value</em>'.
   * @see de.thwildau.tm.moses.abnf.abnf.ProseVal#getValue()
   * @see #getProseVal()
   * @generated
   */
  EAttribute getProseVal_Value();

  /**
   * Returns the meta object for class '{@link de.thwildau.tm.moses.abnf.abnf.Repeat <em>Repeat</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Repeat</em>'.
   * @see de.thwildau.tm.moses.abnf.abnf.Repeat
   * @generated
   */
  EClass getRepeat();

  /**
   * Returns the meta object for the attribute '{@link de.thwildau.tm.moses.abnf.abnf.Repeat#getLowerBound <em>Lower Bound</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Lower Bound</em>'.
   * @see de.thwildau.tm.moses.abnf.abnf.Repeat#getLowerBound()
   * @see #getRepeat()
   * @generated
   */
  EAttribute getRepeat_LowerBound();

  /**
   * Returns the meta object for the attribute '{@link de.thwildau.tm.moses.abnf.abnf.Repeat#getUpperBound <em>Upper Bound</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Upper Bound</em>'.
   * @see de.thwildau.tm.moses.abnf.abnf.Repeat#getUpperBound()
   * @see #getRepeat()
   * @generated
   */
  EAttribute getRepeat_UpperBound();

  /**
   * Returns the factory that creates the instances of the model.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the factory that creates the instances of the model.
   * @generated
   */
  AbnfFactory getAbnfFactory();

  /**
   * <!-- begin-user-doc -->
   * Defines literals for the meta objects that represent
   * <ul>
   *   <li>each class,</li>
   *   <li>each feature of each class,</li>
   *   <li>each enum,</li>
   *   <li>and each data type</li>
   * </ul>
   * <!-- end-user-doc -->
   * @generated
   */
  interface Literals
  {
    /**
     * The meta object literal for the '{@link de.thwildau.tm.moses.abnf.abnf.impl.RuleSetImpl <em>Rule Set</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.thwildau.tm.moses.abnf.abnf.impl.RuleSetImpl
     * @see de.thwildau.tm.moses.abnf.abnf.impl.AbnfPackageImpl#getRuleSet()
     * @generated
     */
    EClass RULE_SET = eINSTANCE.getRuleSet();

    /**
     * The meta object literal for the '<em><b>Rules</b></em>' containment reference list feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference RULE_SET__RULES = eINSTANCE.getRuleSet_Rules();

    /**
     * The meta object literal for the '{@link de.thwildau.tm.moses.abnf.abnf.impl.RuleImpl <em>Rule</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.thwildau.tm.moses.abnf.abnf.impl.RuleImpl
     * @see de.thwildau.tm.moses.abnf.abnf.impl.AbnfPackageImpl#getRule()
     * @generated
     */
    EClass RULE = eINSTANCE.getRule();

    /**
     * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute RULE__NAME = eINSTANCE.getRule_Name();

    /**
     * The meta object literal for the '<em><b>Alternation</b></em>' containment reference feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference RULE__ALTERNATION = eINSTANCE.getRule_Alternation();

    /**
     * The meta object literal for the '{@link de.thwildau.tm.moses.abnf.abnf.impl.AlternationImpl <em>Alternation</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.thwildau.tm.moses.abnf.abnf.impl.AlternationImpl
     * @see de.thwildau.tm.moses.abnf.abnf.impl.AbnfPackageImpl#getAlternation()
     * @generated
     */
    EClass ALTERNATION = eINSTANCE.getAlternation();

    /**
     * The meta object literal for the '<em><b>Concatenations</b></em>' containment reference list feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference ALTERNATION__CONCATENATIONS = eINSTANCE.getAlternation_Concatenations();

    /**
     * The meta object literal for the '{@link de.thwildau.tm.moses.abnf.abnf.impl.ConcatenationImpl <em>Concatenation</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.thwildau.tm.moses.abnf.abnf.impl.ConcatenationImpl
     * @see de.thwildau.tm.moses.abnf.abnf.impl.AbnfPackageImpl#getConcatenation()
     * @generated
     */
    EClass CONCATENATION = eINSTANCE.getConcatenation();

    /**
     * The meta object literal for the '<em><b>Repetitions</b></em>' containment reference list feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference CONCATENATION__REPETITIONS = eINSTANCE.getConcatenation_Repetitions();

    /**
     * The meta object literal for the '{@link de.thwildau.tm.moses.abnf.abnf.impl.RepetitionImpl <em>Repetition</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.thwildau.tm.moses.abnf.abnf.impl.RepetitionImpl
     * @see de.thwildau.tm.moses.abnf.abnf.impl.AbnfPackageImpl#getRepetition()
     * @generated
     */
    EClass REPETITION = eINSTANCE.getRepetition();

    /**
     * The meta object literal for the '<em><b>Repeat</b></em>' containment reference feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference REPETITION__REPEAT = eINSTANCE.getRepetition_Repeat();

    /**
     * The meta object literal for the '<em><b>Element</b></em>' containment reference feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference REPETITION__ELEMENT = eINSTANCE.getRepetition_Element();

    /**
     * The meta object literal for the '{@link de.thwildau.tm.moses.abnf.abnf.impl.ElementImpl <em>Element</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.thwildau.tm.moses.abnf.abnf.impl.ElementImpl
     * @see de.thwildau.tm.moses.abnf.abnf.impl.AbnfPackageImpl#getElement()
     * @generated
     */
    EClass ELEMENT = eINSTANCE.getElement();

    /**
     * The meta object literal for the '{@link de.thwildau.tm.moses.abnf.abnf.impl.RuleRefImpl <em>Rule Ref</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.thwildau.tm.moses.abnf.abnf.impl.RuleRefImpl
     * @see de.thwildau.tm.moses.abnf.abnf.impl.AbnfPackageImpl#getRuleRef()
     * @generated
     */
    EClass RULE_REF = eINSTANCE.getRuleRef();

    /**
     * The meta object literal for the '<em><b>Rule</b></em>' reference feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference RULE_REF__RULE = eINSTANCE.getRuleRef_Rule();

    /**
     * The meta object literal for the '{@link de.thwildau.tm.moses.abnf.abnf.impl.GroupImpl <em>Group</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.thwildau.tm.moses.abnf.abnf.impl.GroupImpl
     * @see de.thwildau.tm.moses.abnf.abnf.impl.AbnfPackageImpl#getGroup()
     * @generated
     */
    EClass GROUP = eINSTANCE.getGroup();

    /**
     * The meta object literal for the '<em><b>Alternation</b></em>' containment reference feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference GROUP__ALTERNATION = eINSTANCE.getGroup_Alternation();

    /**
     * The meta object literal for the '{@link de.thwildau.tm.moses.abnf.abnf.impl.OptionImpl <em>Option</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.thwildau.tm.moses.abnf.abnf.impl.OptionImpl
     * @see de.thwildau.tm.moses.abnf.abnf.impl.AbnfPackageImpl#getOption()
     * @generated
     */
    EClass OPTION = eINSTANCE.getOption();

    /**
     * The meta object literal for the '<em><b>Alternation</b></em>' containment reference feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference OPTION__ALTERNATION = eINSTANCE.getOption_Alternation();

    /**
     * The meta object literal for the '{@link de.thwildau.tm.moses.abnf.abnf.impl.CharValImpl <em>Char Val</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.thwildau.tm.moses.abnf.abnf.impl.CharValImpl
     * @see de.thwildau.tm.moses.abnf.abnf.impl.AbnfPackageImpl#getCharVal()
     * @generated
     */
    EClass CHAR_VAL = eINSTANCE.getCharVal();

    /**
     * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute CHAR_VAL__VALUE = eINSTANCE.getCharVal_Value();

    /**
     * The meta object literal for the '{@link de.thwildau.tm.moses.abnf.abnf.impl.NumValImpl <em>Num Val</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.thwildau.tm.moses.abnf.abnf.impl.NumValImpl
     * @see de.thwildau.tm.moses.abnf.abnf.impl.AbnfPackageImpl#getNumVal()
     * @generated
     */
    EClass NUM_VAL = eINSTANCE.getNumVal();

    /**
     * The meta object literal for the '<em><b>Value</b></em>' attribute list feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute NUM_VAL__VALUE = eINSTANCE.getNumVal_Value();

    /**
     * The meta object literal for the '<em><b>Max Value</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute NUM_VAL__MAX_VALUE = eINSTANCE.getNumVal_MaxValue();

    /**
     * The meta object literal for the '{@link de.thwildau.tm.moses.abnf.abnf.impl.BinValImpl <em>Bin Val</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.thwildau.tm.moses.abnf.abnf.impl.BinValImpl
     * @see de.thwildau.tm.moses.abnf.abnf.impl.AbnfPackageImpl#getBinVal()
     * @generated
     */
    EClass BIN_VAL = eINSTANCE.getBinVal();

    /**
     * The meta object literal for the '{@link de.thwildau.tm.moses.abnf.abnf.impl.DecValImpl <em>Dec Val</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.thwildau.tm.moses.abnf.abnf.impl.DecValImpl
     * @see de.thwildau.tm.moses.abnf.abnf.impl.AbnfPackageImpl#getDecVal()
     * @generated
     */
    EClass DEC_VAL = eINSTANCE.getDecVal();

    /**
     * The meta object literal for the '{@link de.thwildau.tm.moses.abnf.abnf.impl.HexValImpl <em>Hex Val</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.thwildau.tm.moses.abnf.abnf.impl.HexValImpl
     * @see de.thwildau.tm.moses.abnf.abnf.impl.AbnfPackageImpl#getHexVal()
     * @generated
     */
    EClass HEX_VAL = eINSTANCE.getHexVal();

    /**
     * The meta object literal for the '{@link de.thwildau.tm.moses.abnf.abnf.impl.ProseValImpl <em>Prose Val</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.thwildau.tm.moses.abnf.abnf.impl.ProseValImpl
     * @see de.thwildau.tm.moses.abnf.abnf.impl.AbnfPackageImpl#getProseVal()
     * @generated
     */
    EClass PROSE_VAL = eINSTANCE.getProseVal();

    /**
     * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute PROSE_VAL__VALUE = eINSTANCE.getProseVal_Value();

    /**
     * The meta object literal for the '{@link de.thwildau.tm.moses.abnf.abnf.impl.RepeatImpl <em>Repeat</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.thwildau.tm.moses.abnf.abnf.impl.RepeatImpl
     * @see de.thwildau.tm.moses.abnf.abnf.impl.AbnfPackageImpl#getRepeat()
     * @generated
     */
    EClass REPEAT = eINSTANCE.getRepeat();

    /**
     * The meta object literal for the '<em><b>Lower Bound</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute REPEAT__LOWER_BOUND = eINSTANCE.getRepeat_LowerBound();

    /**
     * The meta object literal for the '<em><b>Upper Bound</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute REPEAT__UPPER_BOUND = eINSTANCE.getRepeat_UpperBound();

  }

} //AbnfPackage
